package com.miniapp.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.miniapp.dto.AttachmentDTO;
import com.miniapp.entity.MiniAttachmentEntity;

import java.io.InputStream;
import java.util.List;

/**
 * 附件服务类
 */
public interface MiniAttachmentService extends BaseService<MiniAttachmentEntity> , IService<MiniAttachmentEntity> {

	/**
	 * 创建附件，实现会上传到阿里云
	 * @param fileName
	 * @param saveFilePath
	 * @param fileInputStream
	 * @param media
	 * @param userId
	 * @return 附件对象
	 */
	MiniAttachmentEntity createAttachment(String fileName, String saveFilePath, InputStream fileInputStream, String media, Long userId);

	/**
	 * 得到附件的可请求完整地址（会处理cdn的前缀）
	 * @param miniAttachment 附件
	 * @return 地址
	 */
	String getFullRequestUrl(MiniAttachmentEntity miniAttachment);

	/**
	 * 得到附件的可请求完整地址（会处理cdn的前缀,图片可以指定宽高，会自动裁剪）
	 * @param miniAttachment 附件
	 * @param width 宽
	 * @param height 高
	 * @return 地址
	 */
	String getFullRequestUrl(MiniAttachmentEntity miniAttachment, int width, int height);

	/**
	 * 附件查询
	 * @param attachmentDTO
	 * @return
	 */
    List<MiniAttachmentEntity> findByAttachmentDTO(AttachmentDTO attachmentDTO);

	/**
	 * 福建商城直接返回地址
	 * @param originalFilename
	 * @param saveFilePath
	 * @param inputStream
	 * @return
	 */
	String upload(String originalFilename, String saveFilePath, InputStream inputStream);
}
